package types

type ProjectListQueryItem struct {
	Id               int64  `json:"id"`
	Name             string `json:"name"`
	ProjectStatusIds string `json:"project_status_ids"`
	ProjectMediaIds  string `json:"project_media_ids"`
}

type ProjectListV2Item struct {
	Id                 uint64 `json:"id"`
	Name               string `json:"name"`
	StatusText         string `json:"status_text"`
	PreviewImageBig    string `json:"preview_image_big"`
	PreviewImageMiddle string `json:"preview_image_middle"`
	PreviewImageSmall  string `json:"preview_image_small"`
}

type ProjectManResourceDistributionReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type SupplierAddressManNumberDataItem struct {
	Type                string `json:"type"`                  // 类型 外包还是内部
	Longitude           string `json:"longitude"`             // 经度
	Latitude            string `json:"latitude"`              // 纬度
	ProjectMemberNumber int64  `json:"project_member_number"` // 项目成员数
	TenantName          string `json:"tenant_name"`           // 租户名称
	TenantAddress       string `json:"tenant_address"`        // 租户地址
	Province            string `json:"province"`              // 省
	Cities              string `json:"cities"`                // 市
}
type ProjectManResourceDistributionRes struct {
	InsideManNumber              int64                              `json:"inside_man_number"`                // 内部投入人数
	OutsideManNumber             int64                              `json:"outside_man_number"`               // 供应商投入人数
	SupplierAddressManNumberData []SupplierAddressManNumberDataItem `json:"supplier_address_man_number_data"` // 投入公司地址情况
}

type ProjectDetailReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type ProjectDetailRes struct {
	ProjectId              int64    `json:"project_id"`                // 项目id
	ProjectName            string   `json:"project_name"`              // 项目名称
	Invested               int64    `json:"invested"`                  // 已投入
	Spent                  int64    `json:"spent"`                     // 已花费
	InvestedUnit           string   `json:"invested_unit"`             // 已投入单位
	SpentUnit              string   `json:"spent_unit"`                // 已花费单位
	PlanEpisodeNumber      int64    `json:"plan_episode_number"`       // 规划剧集
	DoneEpisodeNumber      int64    `json:"done_episode_number"`       // 已完成剧集
	OnlineEpisodeNumber    int64    `json:"online_episode_number"`     // 已上线剧集
	TaskTotalNumber        int64    `json:"task_total_number"`         // 总任务数量
	TaskDoneNumber         int64    `json:"task_done_number"`          // 已完成任务数量
	PreviewMakingVideoList []string `json:"preview_making_video_list"` // 制作中视频列表
	FirstPlanPlayTime      int64    `json:"first_plan_play_time"`      // 最早计划播出时间
}

type ProjectTaskSubmitCountByDateReq struct {
	ProjectId       uint64 `json:"project_id" binding:"required"`
	DateStringStart string `json:"date_string_start" binding:"required,datetime=2006-01-02"`
	DateStringEnd   string `json:"date_string_end" binding:"required,datetime=2006-01-02"`
}

type ProjectTaskSubmitCountByDateResItem struct {
	Date               string `json:"date"`
	VersionPassCount   int64  `json:"version_pass_count"`
	VersionSubmitCount int64  `json:"version_submit_count"`
}

type VersionPassSubmitCountByDate struct {
	Date   string `json:"date"`    // 日期
	IsPass string `json:"is_pass"` // 是否通过
	Count  int64  `json:"count"`   // 数量
}

type ProjectTaskDoneGroupedCountReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type ProjectTaskDoneGroupedCountRes struct {
	InProgress     int64 `json:"in_progress"`     // 进行中
	CurrentOverdue int64 `json:"current_overdue"` // 当前逾期
	Done           int64 `json:"done"`            // 已完成
	Total          int64 `json:"total_task"`      // 总任务
}

type TaskStatusCount struct {
	StatusCode string `json:"status_code"`
	Number     int64  `json:"number"`
}

type ProjectStepCategoryDoneCountReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type ProjectStepCategoryDoneCountResItem struct {
	Id     int64  `json:"id"`
	Name   string `json:"name"`
	Number int64  `json:"number"`
}

type ProjectAssetPreviewCheckReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type AssetCategoryDoneTaskCountItem struct {
	Name   string `json:"name"`
	Number int64  `json:"number"`
}
type ProjectAssetPreviewCheckRes struct {
	PreviewMakingVideoList     []string                         `json:"preview_making_video_list"`      // 资产巡检视频列表
	AssetCategoryDoneTaskCount []AssetCategoryDoneTaskCountItem `json:"asset_category_done_task_count"` // 资产任务完成统计
}

type StepCategoryCount struct {
	StepCategoryId int64 `json:"step_category_id"`
	Number         int64 `json:"number"`
}

type ProjectInprogressEpisodeReq struct {
	ProjectId uint64 `json:"project_id" binding:"required"`
}

type ProjectInprogressEpisodeResItem struct {
	EpisodeId        int64  `json:"episode_id"`         // 剧集id
	EpisodeName      string `json:"episode_name"`       // 剧集名称
	TotalTaskNumber  int64  `json:"total_task_number"`  // 总任务数量
	UndoneTaskNumber int64  `json:"undone_task_number"` // 未完成任务数量
}
